﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using AgencyEntityLib.BaseEntity;
using Ecopsy.Tools;
using Ecopsy.DataTier;
using SqlLibrary;


/// <summary>
/// Визуальное предтавление в гриднике
/// </summary>
public class grdContract
{
    private Contract  _Contract;
    public Contract Contract { get { return _Contract; } }
    
    public grdContract(Contract cntr) { _Contract = cntr; }
    
    public DateTime SignDate 
    { get { return _Contract.SignDate; } }
    
    /// <summary>
    /// Дата начала контракта = дате начала по первой поверхности - если поверхностей нет - первый день текущего месяца
    /// </summary>
    public DateTime   StartDate 
    {
        get
        {
            return Contract.StartDate;
        }
    }
    
    /// <summary>
    /// Дата начала контракта = дате окончания по второй поверхности - если поверхностей нет - последний день текущего месяца
    /// </summary>
    public DateTime EndDate
    {
        get
        {
            return Contract.EndDate;
        }
       
    }
   
    public string ContractStatus { get { return _Contract.ContractStatus.ID; } }
    
    public string TxtContractStatus 
    { 
        get    {
            if (null == _Contract.ContractStatus )
                return string.Empty ;

            return _Contract.ContractStatus .StatusName ; 
            } 
    }
    
    public string CuratorName 
    {
        get 
        {
            if (null == _Contract.Client) return string.Empty;
            if (null == _Contract.Client.GetCurator()) return string.Empty;            
            return _Contract.Client.GetCurator().ShortName; ;
        }
        
    }

    public string ClientName
    {
        get
        {
            if (null == _Contract.Client) return string.Empty;
            return _Contract.Client.Name ;
        }
    }
    
    public string ID
    {
        get
        {            
            return _Contract.ID;
        }
    }

    public string Number
    {
        get
        {
            return _Contract.Number ;
        }
    }

    /// <summary>
    /// Сумма по поверхностям
    /// </summary>
    public int SurfaceItemListSumma 
    {
        get 
        {
            return  _Contract.ContractSurfaceItemList.Summa;
        }
    }

    /// <summary>
    /// Сумма согласно плана платежей
    /// </summary>
    public int ContractSumma
    {
        get
        {
            if (!(_Contract.ContractStatus is ContractStatus_Contract))
                return 0;

            return (_Contract.ContractStatus as ContractStatus_Contract).PaymentsPlan.Summa;
        }
    }
    
    /// <summary>
    /// Сумма по платежам
    /// </summary>
    public double  PaymentsSumma
    {
        get{
            return    _Contract .GetPaymentsSumma ();
        }
    }

    public double RestsSumma
    {
        get { return _Contract.GetRests(); }
    }


    public double CurrentRestsSumma
    {
        get { return _Contract.GetCurrentRests(); }
    }


}
 

        